package cn.modoumama.common.utils.validator.constraints;

import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;

import cn.modoumama.common.utils.validator.defs.PhoneValidator;

/**
 * 验证手机号，空和正确的手机号都能验证通过<br>
 * 创建人：邓强 <br>
 * 创建时间：2018年1月5日 下午3:17:12 <br>
 * 修改人： <br>
 * 修改时间：2018年1月5日 下午3:17:12 <br>
 * 修改备注： <br>
 * 
 * @version V1.0
 */
@Documented
@Constraint(validatedBy = { PhoneValidator.class })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
public @interface Phone {
	// 默认错误消息
	String message() default "手机号码格式非法";

	// 分组
	Class<?>[] groups() default {};

	// 负载
	Class<? extends Payload>[] payload() default {};

	// 指定多个时使用
	@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
	@Retention(RUNTIME)
	@Documented
	@interface List {
		Phone[] value();
	}
}
